/*
 * StateManager.h
 *
 *  Created on: 15 Nov 2013
 *      Author: axel
 */

#ifndef STATEMANAGER_H_
#define STATEMANAGER_H_

#include "KeyCode.h"
#include "StateMachine.h"


class StateManager
{
public:
	StateManager(void);
	~StateManager(void);

	StateMachine* initialiseState();
	void changePlacesBeen(long code, StateMachine* machine);
	StateMachine* getStateValue(long code);
	StateMachine* callStates(long code, long oldcode, StateMachine* oldmachine);
private:
	KeyCode* codes;
	std::map<long, StateMachine*> placesbeen;

	long currentcode;

};

#endif /* STATEMANAGER_H_ */
